CSS排版與佈局
CSS盒模型是理解元素佈局的基礎,所有HTML元素都可以看作一個盒子,包含以下幾個部分:
盒模型的計算方式:
這有助於控制元素之間的間距和大小,設計可控的佈局。
示例:
div {
width: 200px;
padding: 20px;
border: 5px solid black;
margin: 10px;
}
浮動(float) 是一種將元素從文檔正常流中移出的方法,通常用來進行簡單的佈局,如兩欄或多欄佈局。浮動元素旁邊的內容會環繞在浮動元素的周圍。
常見使用:
問題與解決:
clear: both
或者使用clearfix
技術。示例:
img {
float: left;
margin: 10px;
}
.clearfix::after {
content: "";
display: table;
clear: both;
}
CSS的position
屬性控制元素在頁面中的定位方式。常見的定位模式包括:
示例:
.relative-box {
position: relative;
top: 20px;
left: 30px;
}
.fixed-header {
position: fixed;
top: 0;
width: 100%;
}
Flexbox 是一個強大的CSS佈局工具,用來設計複雜且靈活的佈局。它可以在單行或多行內排列元素,並且具有對齊和空間分配功能。
核心概念:
常用屬性:
示例:
.container {
display: flex;
justify-content: space-between;
align-items: center;
}
.item {
flex: 1;
}
使用場景:
CSS Grid 是另一個強大的佈局系統,適合用於設計二維佈局(行和列)。相比Flexbox,Grid更適合處理複雜的佈局需求。
核心概念:
常用屬性:
grid-gap
:定義行與列之間的間距。grid-area
:控制元素在網格中的位置和跨度。示例:
.grid-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.grid-item {
grid-column: span 2; /* 讓元素橫跨兩列 */
}
使用場景:
兩者可以一起使用,Flexbox處理細粒度的佈局,Grid處理整體佈局。